﻿using Application.CodeRuleService;
using Domain.Entity;
using Domain.Entity.bs;
using Domain.Entity.sys;
using Domain.Entity.zct;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Application.CustomerService
{
    public interface ICustomerService
    {
        //查询
        Task<FenYe<Customer>> GetCustomer(FenYe<Customer> fenYe, string? cust_code, string? cust_name, int? cust_status, string? cust_industry, string? cust_userName);

        //高级查询
        Task<FenYe<Customer>> GetSeniorCustomer(FenYe<Customer> fenYe, string? cust_code, string? cust_name, string? cust_industry, string? cust_type, string? cust_linkman, string? cust_linkphone, string? cust_email, string? cust_depName, string? cust_userName, int? cust_status, string? cust_address, string? cust_accountName, string? cust_taxpayerNum, string? cust_bankAccount, string? cust_openBank, string? create_name, string? startTime, string? endTime);

        // 添加客户
        Task<int> AddCustomer(AddCustomerDto addcustomerDto);

        // 删除客户
        Task<int> DeleteCustomer(int id);

        // 修改客户
        Task<int> UpdateCustomer(UpdateCustomerDto updatecustomerrDto);

        // 查询部门
        Task<List<Department>> GetDepartment(int? Department_id);

        // 查询用户
        Task<List<User>> GetUser(int? Department_id);

        // 查询字典
        Task<List<DictData>> GetDictData(int dict_id);

        //Id查客户
        Task<Customer> GetIdCustomer(int id);

        //客户编号查询
        Task<List<string>> GetCustomerID();

        //状态切换
        Task<int> UpdateStatus(int cust_id, int cust_status);

        //查询所有客户
        Task<List<Customer>> GetCustomers();
    }
}